package grape.house.rest.estate.vo;
import grape.base.service.area.api.IAreaService;
import grape.base.service.dict.api.IDictService;
import grape.common.rest.vo.BaseIdVo;

import grape.common.service.trans.TransBy;
import grape.common.service.trans.impl.DatetimeTransServiceImpl;
import grape.composite.service.businessdistrict.api.IBusinessDistrictService;
import grape.crm.service.company.api.ICompanyService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 楼盘表
 * </p>
 *
 * @author yangwei
 * @since 2020-09-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="楼盘数据响应对象")
public class EstateVo extends BaseIdVo<String> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "编号，唯一")
    private String code;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "名称别名")
    private String nameAlias;

    @ApiModelProperty(value = "第一个字的首字母")
    private String spellFirst;

    @ApiModelProperty(value = "拼音，简拼，每个字的首字母")
    private String spellSimple;

    @ApiModelProperty(value = "拼音，全拼")
    private String spell;

    @ApiModelProperty(value = "经度")
    private String longitude;

    @ApiModelProperty(value = "纬度")
    private String latitude;
    @ApiModelProperty(value = "省")
    private String provinceAreaId;

    @ApiModelProperty(value = "省名称")
    @TransBy(type = IAreaService.trans_areaName,byFieldName = "provinceAreaId")
    private String provinceAreaName;

    @ApiModelProperty(value = "城市")
    private String cityAreaId;

    @ApiModelProperty(value = "城市名称")
    @TransBy(type = IAreaService.trans_areaName,byFieldName = "cityAreaId")
    private String cityAreaName;

    @ApiModelProperty(value = "区")
    private String districtAreaId;

    @ApiModelProperty(value = "区名称")
    @TransBy(type = IAreaService.trans_areaName,byFieldName = "districtAreaId")
    private String districtAreaName;

    @ApiModelProperty(value = "商圈id")
    private String businessDistrictId;

    @TransBy(type = IBusinessDistrictService.trans_business_district_name,byFieldName = "businessDistrictId")
    @ApiModelProperty(value = "商圈名称")
    private String businessDistrictName;

    @ApiModelProperty(value = "地址全名")
    private String address;

    @ApiModelProperty(value = "地址别名")
    private String addressAlias;

    @ApiModelProperty(value = "封面图")
    private String coverImageUrl;

    @ApiModelProperty(value = "占地面积，单位平方米")
    private Integer coverArea;

    @ApiModelProperty(value = "建议面积，单位平方米")
    private Integer buildingArea;

    @ApiModelProperty(value = "容积率")
    private Float plotRatio;

    @ApiModelProperty(value = "绿化率")
    private Integer greenRatio;

    @ApiModelProperty(value = "地上车位数")
    private Integer aboveGroundParkingSpaceNum;

    @ApiModelProperty(value = "地下车位数")
    private Integer belowGroundParkingSpaceNum;

    @ApiModelProperty(value = "车位占比，如：1:1.9,这里只存后面的")
    private Float parkingRatio;

    @ApiModelProperty(value = "面积区间最小值")
    private Integer areaMin;

    @ApiModelProperty(value = "面积区间最大值")
    private Integer areaMax;

    @ApiModelProperty(value = "是否有一手销售")
    private Boolean isHasYs;

    @ApiModelProperty(value = "是否有二手销售")
    private Boolean isHasErs;

    @ApiModelProperty(value = "是否有租房")
    private Boolean isHasZu;

    @ApiModelProperty(value = "始建于")
    private Long buildAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_date,byFieldName = "buildAt")
    @ApiModelProperty(value = "始建于文本")
    private String buildAtTxt;

    @ApiModelProperty(value = "建成于")
    private Long builtAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_date,byFieldName = "builtAt")
    @ApiModelProperty(value = "建成于文本")
    private String builtAtTxt;

    @ApiModelProperty(value = "开发商公司id")
    private String developerCompanyId;

    @TransBy(type = ICompanyService.trans_company_name,byFieldName = "developerCompanyId")
    @ApiModelProperty(value = "开发商公司名称")
    private String developerCompanyName;

    @ApiModelProperty(value = "物业公司id")
    private String propertyCompanyId;

    @TransBy(type = ICompanyService.trans_company_name,byFieldName = "propertyCompanyId")
    @ApiModelProperty(value = "物业公司名称")
    private String propertyCompanyName;

    @ApiModelProperty(value = "环线位置，字典")
    private String loopLineDictId;

    @TransBy(type = IDictService.trans_dictName,byFieldName = "loopLineDictId")
    @ApiModelProperty(value = "环线位置，字典")
    private String loopLineDictName;
}
